package com.ruoyi.buy.mapper.PO;

import com.ruoyi.buy.domain.entity.PO.BuyPurchaseBillItem;
import com.ruoyi.buy.domain.entity.PO.BuyPurchaseInvItem;
import com.ruoyi.buy.domain.entity.PO.BuyPurchaseInvoice;
import com.ruoyi.buy.domain.entity.buy0003.Buy0003GetNotPostItem;

import java.math.BigDecimal;
import java.util.List;

/**
 * 采购发票Mapper接口
 * 
 * @author ruoyi
 * @date 2023-12-06
 */
public interface BuyPurchaseInvoiceMapper 
{
    /**
     * 查询采购发票
     * 
     * @param id 采购发票主键
     * @return 采购发票
     */
    public BuyPurchaseInvoice selectBuyPurchaseInvoiceById(Long id);

    /**
     * 查询采购发票列表
     * 
     * @param buyPurchaseInvoice 采购发票
     * @return 采购发票集合
     */
    public List<BuyPurchaseInvoice> selectBuyPurchaseInvoiceList(BuyPurchaseInvoice buyPurchaseInvoice);

    /**
     * 新增采购发票
     * 
     * @param buyPurchaseInvoice 采购发票
     * @return 结果
     */
    public int insertBuyPurchaseInvoice(BuyPurchaseInvoice buyPurchaseInvoice);

    /**
     * 修改采购发票
     * 
     * @param buyPurchaseInvoice 采购发票
     * @return 结果
     */
    public int updateBuyPurchaseInvoice(BuyPurchaseInvoice buyPurchaseInvoice);

    /**
     * 删除采购发票
     * 
     * @param id 采购发票主键
     * @return 结果
     */
    public int deleteBuyPurchaseInvoiceById(Long id);

    /**
     * 批量删除采购发票
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBuyPurchaseInvoiceByIds(Long[] ids);

    List<BuyPurchaseInvItem> getNotInvItem(BuyPurchaseInvItem para);

    BuyPurchaseBillItem getPurchaseBillItem(BuyPurchaseInvItem para);

    BigDecimal getInvQty(BuyPurchaseInvItem para);

}
